home *** CD-ROM | disk | FTP | other *** search
/ C/C++ Users Group Library 1996 July / C-C++ Users Group Library July 1996.iso / listings / v_12_06 / gotwals / lessthan.cpp < prev    next >
Text File  |  1994-04-01  |  995b  |  34 lines

  1. ====================== Listing 4 ======================
  2. /* signed comparison : lint1 < lint2
  3.    (assumes normalized operands)
  4.    --------------------------------- */
  5. int LargeInt::operator<(const LargeInt& lint) const {
  6.    if (sign < lint.sign)
  7.       return 1;
  8.    if (sign > lint.sign)
  9.       return 0;
  10. // at this point, the signs are the same
  11.    if (sign == 0)
  12.       return 0;
  13.    if ((sign == -1  &&  len > lint.len)  ||
  14.        (sign ==  1  &&  len < lint.len))
  15.       return 1;
  16.    if ((sign == -1  &&  len < lint.len)  ||
  17.        (sign ==  1  &&  len > lint.len))
  18.       return 0;
  19. // here the signs and the lengths are both the same
  20.    int compare = memcmpInt(adr, lint.adr, len);
  21.    if ((sign ==  1  &&  compare < 0)  ||
  22.        (sign == -1  &&  compare > 0))
  23.       return 1;
  24.    return 0;
  25. }
  26.  
  27. /* signed comparison : lint < 123
  28.    ------------------------------- */
  29. int LargeInt::operator<(int num) const {
  30.    LargeInt test;
  31.    test = num;
  32.    return *this < test;
  33. }
  34.